from flask import Flask


class Config(object):
    """配置类
    DEBUG=True表示开启调试模式，
    其功能：1、程序代码修改后自动重启服务器
           2、在服务器出现相关错误时可以直接讲错误信息进行跑出到控制台打印出来"""
    DEBUG=True


app=Flask(__name__,
          static_path='/static',
          static_url_path='/static',
          static_folder='static',
          template_folder='templates'
          )

# 将配置类关联到app的config中
# 方法1：从配置类中读取项目的配置信息
app.config.from_object(Config)

# 方法2：从py文件中读取项目配置信息
# app.config.from_pyfile("config.ini")

# 方法3：从环境变量中读取项目配偶之信息，FlaskConfig是环境变量名
# app.config.from_envvar("FlaskConfig")

# 一些常用的项目配置属性在app中也会保留一份，即如以下代码也可以开启调试模式
# app.debug=True
# app.secret_key = 'xx'  # 这是什么鬼？

# app.config是一个字典（以下方式每次只能配置一个属性，也可开始调试模式）
# app.config['DEBUG']=True

@app.route('/')
def hello_world():
    a=1/0
    # url_map相当于min_web中的route_list
    print(app.url_map)
    print(app.config.get("DEBUG1","a"))
    return 'hello world'
"""
以上装饰一个视图函数即向app.url_map中添加一个视图地址
app.url_map的输出结果：
Map([<Rule '/' (OPTIONS, HEAD, GET) -> hello_world>,
 <Rule '/static/<filename>' (OPTIONS, HEAD, GET) -> static>])
"""

if __name__=='__main__':
    # app.run(debug=True)  # 这里也可以开启调式模式
    app.run()
